package com.xbongbong.pro.recheck.pojo.dto;

import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.enums.IndexTypeEnum;
import com.xbongbong.paas.field.FieldAttrEntity;
import com.xbongbong.paas.pojo.vo.CheckRepeatVO;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import com.xbongbong.saas.domain.entity.RecheckingRuleEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @description 用于新建、编辑页查重的上下文传参
 * @author yanglei
 * @date 2022/11/17 10:21
 */
@Getter
@Setter
@ToString
@NoArgsConstructor
public class RecheckAddEditDTO implements Serializable {
    /**
     * 数据id,区分是新建场景还是编辑场景，新建场景 为 null
     */
    private Long dataId;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 是否有查重权限
     */
    private Boolean isRecheckPermission;
    /**
     * @description
     */
    private CheckRepeatVO checkRepeatVO;
    /**
     * 查重字段的attr
     */
    private String attr;
    /**
     * 子表单查重字段
     */
    private String subAttr;
    /**
     * 查重字段的值
     */
    private Object value;
    /**
     * 子表单字段的值，可以有多个，包括电话子表单
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private List<String> subValueList;
    /**
     * 重复规则实体
     */
    private RecheckingRuleEntity ruleEntity;
    /**
     * 当前业务的所有模板Id
     */
    private List<Long> allFormIdList;
    /**
     * 标识是鼠标失去焦点还是新建、编辑的保存
     */
    private Map<String, FieldAttrEntity> explainMap;
    /**
     * 当前业务类型
     */
    private Integer businessType;
    /**
     * 当前formId
     */
    private Long formId;
    /**
     * 标识是鼠标失去焦点还是新建、编辑的保存 ,为true代表鼠标失去焦点，false,代表新建，编辑的保存
     */
    private Boolean isEdit;
    /**
     * 当前公司的套餐
     */
    private Integer feeType;
    /**
     * 主表索引
     */
    private IndexTypeEnum indexTypeEnum;
    /**
     * 子表单索引
     */
    private IndexTypeEnum subIndexTypeEnum;
    /**
     * 查重工具规则查出来的数据
     * 每个业务对应的查重主数据，线索联合查重会对应三个值  8000 -> 线索，100 -> 客户 ,401 -> 联系人
     */
    private Map<Integer, List<PaasFormDataEntityExt>> checkToolDataMap;
    /**
     * 新建不允许重复查出来的数据
     * 每个业务对应的查重主数据，线索联合查重会对应三个值  8000 -> 线索，100 -> 客户 ,401 -> 联系人
     */
    private Map<Integer, List<PaasFormDataEntityExt>> noRepeatDataMap;
    /**
     * 各自业务的名称字段Attr
     */
    private String nameAttr;
    /**
     * 是否导入
     */
    private Boolean isImport;
    /**
     * 流程id
     */
    private Long taskId;
    /**
     * 是否工作流公司
     */
    private Boolean isOpenWorkflow;
}
